package com.bjpowernode.handler;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

//必须实现InvocationHandler接口，完成代理类要做的功能(调用方法，功能加强)
public class MySellHandler implements InvocationHandler {

    private Object target;

    //动态代理：目标对象是大活动的，不是固定的，需要传入进来
    //传入的是谁，就给谁创建代理
    public MySellHandler(Object target) {
        //给目标对象赋值
        this.target = target;
    }

    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {

        Object res=null;

        //向厂家发送订单，告诉厂家，我买了U盘，厂家发货
       // float price=usbKingFactory.sell(amount); //厂家的价格
        res= method.invoke(target,args);

        if(res!=null){
            Float price= (Float) res;
            price=price+25;
            res=price;
        }
        //商家需要加价，也就是代理要增加价格
       // price=price+25;
        // 在目标的方法调用后，你做的其它功能就都是增强功能
        System.out.println("淘宝商家，给你返回一个优惠卷，或者红包！");

        //增加的价格
        return res;
    }

}
